package com.jqq.string_;

/**
 * @author 姬倩倩
 * @version 1.0
 */
public class String01 {
    public static void main(String[] args) {
        //字符串的字符使用Unicode字符编码，一个字符（不区分字母还是汉字）占两个字节
        String name = "jack";
        //String类有很多构造器，实现了构造器的重载
        //常用的有
        /*
        String s1 = new String();
        String s2 = new String(String original);
        String s3 = new String(char[] a);
        String s4 = new String(char[] a, int startIndex, int count)
        String s5 = new String(byte[] b);

        String类实现了接口Serializable【String可以串行化：可以在网络传输】
                     接口Comparable 【String对象可以比较大小】
        String类是final类，不能被继承
        String 有属性 private final char value[]; 用于存放字符串内容
        一定要注意，value是一个final类型，不可以修改（指向的地址不可修改，不是字符不可修改
        可以到value指向的地址块中修改某个字符）
         */
        final char[] value = {'a', 'b','c'};
        value[2] = 'd';
        System.out.println(new String(value));
        String a = "jqq";
        String b = new String("jqq");
        System.out.println(b == b.intern());

        String s1 = "abc";
        System.out.println(s1.hashCode());
        String s2 = new String("abc");
        System.out.println(s2.hashCode());
        System.out.println(s1 == s2);
        s1 = "cde";
        System.out.println(s1.hashCode());

        s2 = new String("abc");
        System.out.println(s2.hashCode());
        s2 = "cde";
        System.out.println(s2.hashCode());
    }
}
